package com.gengzp.system.service;

import com.gengzp.common.model.pagination.resp.PaginationResponse;
import com.gengzp.common.model.role.req.CreateSysRoleReq;
import com.gengzp.common.model.role.req.EditSysRoleReq;
import com.gengzp.common.model.role.req.PageSysRoleReq;
import com.gengzp.common.model.role.resp.PageSysRoleResp;
import com.gengzp.common.model.role.resp.SearchSysRoleResp;

/**
 * @ClassName SysRoleService
 * @Description 系统角色服务层接口
 * @Author gengzp
 * @Date 2025/9/8 19:51
 */
public interface SysRoleService {

    /**
     * 添加系统角色
     *
     * @param req 添加角色请求实体
     */
    void createSysRole(CreateSysRoleReq req);

    /**
     * 根据id编辑系统角色
     *
     * @param req 编辑角色请求实体
     */
    void editSysRoleById(EditSysRoleReq req);

    /**
     * 根据id删除系统角色
     *
     * @param roleId 角色id
     */
    void removeSysRoleById(Long roleId);

    /**
     * 根据id查询系统角色
     *
     * @param roleId 角色id
     * @return 查询系统角色返回实体
     */
    SearchSysRoleResp searchSysRoleById(Long roleId);

    /**
     * 分页查询系统角色
     *
     * @param req 分页查询角色请求实体
     * @return 分页查询系统角色返回实体
     */
    PaginationResponse<PageSysRoleResp> pageQuerySysRole(PageSysRoleReq req);

}
